Skip to content

feat(frontend): Signal Route B1 pill toolbar#58

Merged
LostPointer merged 8 commits intoDafeCpp:developfrom
LostPointer:feat/signal-route-b1-toolbar
Apr 21, 2026
Merged

feat(frontend): Signal Route B1 pill toolbar#58
LostPointer merged 8 commits intoDafeCpp:developfrom
LostPointer:feat/signal-route-b1-toolbar

Conversation

@LostPointer
Copy link
Copy Markdown
Contributor

@LostPointer LostPointer commented Apr 21, 2026

Summary

  • Signal Route (TelemetryViewer): заменяет громоздкий фильтр-блок с радио-кнопками и тремя MaterialSelect на компактную pill-капсулу, всегда видимую над складываемой секцией истории. LiveSwitch переключает live/history, три select с иконками (папка/колба/play) — проект/эксперимент/пуск.
  • ExperimentsList: фильтры перемещены в pill-капсулу (поиск + проект + статус + кнопка «Новый»), кнопки экспорта CSV/JSON остаются отдельным рядом.
  • SensorsList: pill-капсула с поиском (клиентская фильтрация по имени), project и status select; убрана устаревшая filter-panel.
  • Login: поля ввода получают иконки (user/lock) и высоту 52px в стиле дизайна.

Изменения

Файл Что изменилось
LiveSwitch.tsx/.scss Новый компонент — анимированный toggle с пульсирующей точкой
MaterialSelect.tsx/.scss Props variant="pill" и icon, floating label внутри trigger, aria-label для доступности
styles/components.scss .filter-capsule, .filter-capsule__search, .login-input-field
TelemetryViewer.tsx/.scss Signal Route capsule, убраны radio-кнопки и meta-pills
ExperimentsList.tsx/.scss Новый filter row с капсулой
SensorsList.tsx/.scss Капсула + клиентский поиск по имени сенсора
Login.tsx/.scss Icon-wrapper inputs

Test plan

  • npm run test -- --run Login ExperimentsList SensorsList — 23/23 passed
  • tsc --noEmit — 0 errors
  • Ручная проверка: переключение live/history в TelemetryViewer
  • Ручная проверка: поиск и фильтрация в ExperimentsList и SensorsList
  • Ручная проверка: форма входа, floating labels при вводе значений

🤖 Generated with Claude Code

LostPointer and others added 8 commits April 21, 2026 20:08
… across portal

Replaces the bulky Signal Route filter panel with a compact always-visible
pill capsule (B1 design): LiveSwitch toggle + three pill selects with icons
(project/experiment/run). Applies the same visual language to ExperimentsList
and SensorsList filters and Login inputs.

- Add LiveSwitch component (animated toggle, live pulse animation)
- Add variant="pill" + icon prop to MaterialSelect (floating label, rounded border)
- Add .filter-capsule, .filter-capsule__search, .login-input-field to components.scss
- TelemetryViewer: capsule replaces radio + 3 selects, history controls stay collapsible
- ExperimentsList: capsule with search + project + status + New button + export row
- SensorsList: capsule with search + project + status, client-side name filter
- Login: lg inputs with user/lock icons

All tests pass (23/23, 2 skipped).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- SensorMonitor: replace card filter-panel with filter-capsule
  (project + connection status, both pill variant with icons)
- ProjectsList: replace raw input+select with filter-capsule
  (search input + role MaterialSelect, pill variant)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…erlap

In pill variant, when selectedValue is empty the floating label stays
inline (acts as placeholder). The selected option text (e.g. "Все проекты")
was also rendered in the value span causing visual overlap.
Now show the selected label only when a non-empty value is chosen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…l buttons

Replace card-style filter blocks in RegistryTab and ExecutionsTab with
filter-capsule layout. Status select uses pill MaterialSelect; service
text input uses filter-capsule__search. Action buttons (Создать/Запустить)
now have border-radius:pill to match the capsule aesthetic.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…gistryTab filter

Add labelOn/labelOff props to LiveSwitch (defaults: Live/History).
Scripts RegistryTab now uses LiveSwitch with labelOn="Активные"/labelOff="Все"
instead of a plain checkbox.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Change .btn base border-radius from --radius-sm (8px) to --radius-pill (999px)
so every button in the portal uses the pill style from the B1 design.
Remove now-redundant override in filter-capsule__btn.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace card-style filter panel with filter-capsule: two search inputs
(Действие, UUID пользователя), pill MaterialSelect for scope type,
pill date-range widget (С—По), and pill Apply/Reset buttons.
Enter key in search inputs also triggers apply.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@LostPointer LostPointer merged commit 91f17d7 into DafeCpp:develop Apr 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant